package com.zackary.spring_blogs.service;

import com.zackary.spring_blogs.entity.Blog;
import com.zackary.spring_blogs.util.PageResult;
import com.zackary.spring_blogs.vo.BlogDetailVO;
import com.zackary.spring_blogs.vo.SimpleBlogListVO;
import com.zackary.spring_blogs.util.PageQueryUtil;

import java.util.List;

/**
 * @author zackary
 * @date 2024年11月18日 21:38
 * @email 884484156@qq.com
 */
public interface BlogService {
    String saveBlog(Blog blog);

    //解释：获取博客分页数据 PageResult:封装查询结果的实体类 PageQueryUtil:封装分页查询的参数
    PageResult getBlogsPage(PageQueryUtil pageUtil);

    //根据组数id批量删除
    Boolean deleteBatch(Integer[] ids);

    //获取博客数量
    int getTotalBlogs();

    //格努id获取博客详细 Long类型:防止主键溢出,允许null
    String getBlogById(Long blogId);

    String updateBlog();

    //获取首页文章列表
    PageResult getBlogForIndexPage(int page);

    //获取侧边栏数据列表
    List<SimpleBlogListVO> getBlogListForIndexPage(int type);

    //文章详情列表
    BlogDetailVO getBlogDetail(Long blogId);

    //根据标签获取文章列表
    PageResult getBlogsPageByTag(String tag, int page);

    //根据分类获取文章列表
    PageResult getBlogsPageByCategory(String category, int page);

    //根据搜索获取文章列表
    PageResult getBlogsPageBySearch(String keyword, int page);

    //根据URL获取文件博客信息
    BlogDetailVO getBlogDetailBySubUrl(String subUrl);



}
